#ifndef DOMAIN8583_H
#define DOMAIN8583_H

#define MAX_FIELD_NO    129  //最大支持域数:信息头+64域,从0开始

typedef struct
{
    int  nField; //域号
    int  nType;  //格式
    int  nAlg;  //对齐方式
    int  nMaxSize;
    unsigned char inchar;  //填充符
} FieldDetail;

typedef struct
{
    int headLen;    //TPDU+报文头的长度
    int nFieldInfoNum;  //存储Field的个数，必须为MAX_FIELD_NO
    FieldDetail szFieldDeatil[MAX_FIELD_NO];
}FieldInfo;

extern FieldInfo icbcInfo;
extern FieldInfo petroInfo;
extern FieldInfo unionInfo;

//格式
#define FIX_ASC    1            //域类型:固定ASC编码格式
#define LL_ASC     2            //域类型:可变ASC编码格式(LL)
#define LLL_ASC    3            //域类型:可变ASC编码格式(LLL)

#define FIX_BCD     4            //域类型:固定BCD编码格式
#define LL_BCD      5            //域类型:可变BCD编码格式(LL)
#define LLL_BCD     6            //域类型:可变BCD编码格式(LLL)
//对齐方式
#define ALIGN_LEFT     1            //域对齐方式:左对齐
#define ALIGN_RIGHT    2            //域对齐方式:右对齐

#endif // DOMAIN8583_H
